A specification of work to be executed within a transaction.
<> type of what is returned in case of a successful TX execution.
Perform the work. This method is guaranteed to run in the context of a transaction.
database on which to perform work and against which the transaction is running.
- result of the transaction, can be null in case of a failure (or when no result is expected, in which case
the generic type of the implementation should be