code: @Override
      public int executeBatch()
      {
          Object connection = getConnection();
          // Create a hashset and populate data into it
          Pipeline pipeLine = null;
          if (isBoundTransaction())
          {
              pipeLine = ((Jedis) connection).pipelined();
          }
          try
          {
              for (Node node : nodes)
              {
                  if (node.isDirty())
                  {
                      node.handlePreEvent();
                      // delete can not be executed in batch
                      if (node.isInState(RemovedState.class))
                      {
                          onDelete(node.getData(), node.getEntityId(), pipeLine != null ? pipeLine : connection);
                      }
                      else
                      {
  
                          List<RelationHolder> relationHolders = getRelationHolders(node);
                          EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata,
                                  node.getDataClass());
  
                          onPersist(metadata, node.getData(), node.getEntityId(), relationHolders,
                                  pipeLine != null ? pipeLine : connection);
                      }
                      node.handlePostEvent();
                  }
              }
          }
          finally
          {
              //
              if (pipeLine != null)
              {
                  pipeLine.sync(); // send I/O.. as persist call. so no need to
                                   // read
                  // response?
              }
              onCleanup(connection);
          }
  
          return nodes.size();
      }
docs: /*
  (non-Javadoc)
  
  @see com.impetus.kundera.persistence.api.Batcher#executeBatch()