docs: @Override
     public Object visitPutKeyValueCommand(InvocationContext ctx, PutKeyValueCommand command) throws Throwable {
        return invokeNextThenApply(ctx, command, (rCtx, rCommand, rv) -> {
           PutKeyValueCommand putKeyValueCommand = (PutKeyValueCommand) rCommand;
           Object key = putKeyValueCommand.getKey();
           if (!putKeyValueCommand.hasAnyFlag(FlagBitSets.ROLLING_UPGRADE) && (!isStoreEnabled(putKeyValueCommand) || rCtx.isInTxScope() || !putKeyValueCommand.isSuccessful()))
              return rv;
           if (!isProperWriter(rCtx, putKeyValueCommand, putKeyValueCommand.getKey()))
              return rv;
  
           storeEntry(rCtx, key, putKeyValueCommand);
           return rv;
        });
     }