docs: private <T> T executeCommandAndCommitIfNeeded(ContextBuilder contextBuilder, VisitableCommand command,
                                                   int keyCount) {
        InvocationContext ctx = contextBuilder.create(keyCount);
        checkLockOwner(ctx, command);
        //noinspection unchecked
        return isTxInjected(ctx) ?
              (T) executeCommandWithInjectedTx(ctx, command) :
              (T) invoker.invoke(ctx, command);
     }