This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
public interface TransactionFunction<R>
Implement this interface to create transaction funs that can be passed to Connection's
runTransaction. This can neatly be done inline using a lambda expression. The transaction may be
automatically run several times if the server rejects the transaction for various reasons.
Therefore your transaction must not have any side effects until after the transaction has
committed (or you have chosen for the transaction to abort).