CompletableFuture<Void> processPutDeleteOrUpdateOperations(Operation<K, V, U> operation) {
    Preconditions.checkNotNull(operation);
    Preconditions.checkArgument(operation instanceof PutOperation
        || operation instanceof DeleteOperation
        || operation instanceof UpdateOperation);

    lock.lock();
    try {
      return addOperation(operation);
    } finally {
      lock.unlock();
    }
  }
@param operation The Put/Delete/Update operation to be added to the batch.
@return A {@link CompletableFuture} to indicate whether the operation is finished.
samza-core/src/main/java/org/apache/samza/table/batching/BatchProcessor.java