public <R, X extends Exception> R inTransaction(HandleCallback<R, X> callback) throws X {
        return isInTransaction()
                ? callback.withHandle(this)
                : transactionHandler.inTransaction(this, callback);
    }
Executes <code>callback</code> in a transaction, and returns the result of the callback.

@param callback a callback which will receive an open handle, in a transaction.
@param <R>      type returned by callback
@param <X>      exception type thrown by the callback, if any
@return value returned from the callback
@throws X any exception thrown by the callback
core/src/main/java/org/jdbi/v3/core/Handle.java