docs: protected final Object nonTxLockAndInvokeNext(InvocationContext ctx, VisitableCommand command,
           LockPromise lockPromise, InvocationFinallyAction finallyFunction) {
        return lockPromise.toInvocationStage().andHandle(ctx, command, (rCtx, rCommand, rv, throwable) -> {
           if (throwable != null) {
              lockManager.unlockAll(rCtx);
              throw throwable;
           } else {
              return invokeNextAndFinally(rCtx, rCommand, finallyFunction);
           }
        });
     }