code: @Override
      public void run(final Iterable<Object[]> buffer) throws Exception {
  
          UpdateableDatastoreConnection con = datastore.openConnection();
          try {
              final Column[] updateColumns = con.getSchemaNavigator()
                      .convertToColumns(schemaName, tableName, columnNames);
              final Column[] whereColumns = con.getSchemaNavigator().convertToColumns(schemaName, tableName,
                      conditionColumnNames);
  
              if (logger.isDebugEnabled()) {
                  logger.debug("Updating columns: {}", Arrays.toString(updateColumns));
              }
  
              final UpdateableDataContext dc = con.getUpdateableDataContext();
              dc.executeUpdate(new BatchUpdateScript() {
                  @Override
                  public void run(UpdateCallback callback) {
                      int updateCount = 0;
                      for (Object[] rowData : buffer) {
                          RowUpdationBuilder updationBuilder = callback.update(updateColumns[0].getTable());
                          for (int i = 0; i < updateColumns.length; i++) {
                              final Object value = rowData[i];
                              updationBuilder = updationBuilder.value(updateColumns[i], value);
                          }
  
                          for (int i = 0; i < whereColumns.length; i++) {
                              final Object value = rowData[i + updateColumns.length];
                              final Column whereColumn = whereColumns[i];
                              final FilterItem filterItem = new FilterItem(new SelectItem(whereColumn),
                                      OperatorType.EQUALS_TO, value);
  
                              updationBuilder = updationBuilder.where(filterItem);
                          }
  
                          if (logger.isDebugEnabled()) {
                              logger.debug("Updating: {}", Arrays.toString(rowData));
                          }
  
                          try {
                              updationBuilder.execute();
                              updateCount++;
                              _updatedRowCount.incrementAndGet();
                          } catch (final RuntimeException e) {
                              errorOccurred(rowData, e);
                          }
                      }
  
                      if (updateCount > 0) {
                          _componentContext.publishMessage(new ExecutionLogMessage(updateCount + " updates executed"));
                      }
                  }
              });
          } finally {
              con.close();
          }
      }
docs: Method invoked when flushing the buffer