code: @Override
      public int executeBatch()
      {
  
          Map<Key, List<TableOperation>> operations = new HashMap<Key, List<TableOperation>>();
          for (Node node : nodes)
          {
              if (node.isDirty())
              {
                  node.handlePreEvent();
                  // delete can not be executed in batch
                  if (node.isInState(RemovedState.class))
                  {
                      delete(node.getData(), node.getEntityId());
                  }
                  else
                  {
                      EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata,
                              node.getDataClass());
                      List<RelationHolder> relationHolders = getRelationHolders(node);
                      // KunderaCoreUtils.showQuery("Execute batch for" +
                      // metadata.getSchema() + "." + metadata.getTableName(),
                      // showQuery);
                      Row row = createRow(metadata, node.getData(), node.getEntityId(), relationHolders);
  
                      Table schemaTable = tableAPI.getTable(metadata.getTableName());
  
                      addOps(operations, schemaTable, row);
                  }
                  node.handlePostEvent();
              }
          }
  
          execute(operations);
          return nodes.size();
      }
docs: /*
  (non-Javadoc)
  
  @see com.impetus.kundera.persistence.api.Batcher#executeBatch()