Just an idea about the transaction isolation level discussion: We could have an optional `TransactionDefinition` to be passed to this method which contains more advanced transaction configuration such as isolation level, propagation (which is not even covered by this PR yet but should be an option for further development on this) and other options. What do you think?