Adds a batch of data to this sink.
Adds a batch of data to this sink. The data for a given batchId is deterministic and if
this method is called more than once with the same batchId (which will happen in the case of
failures), then data should only be added once.
Note: You cannot apply any operators on data except consuming it (e.g., collect/foreach).
Otherwise, you may get a wrong result.