@Override
    protected void basicOperateOnRegion(EntryEventImpl ev, final DistributedRegion rgn) {
      for (int i = 0; i < putAllDataSize; ++i) {
        if (putAllData[i].versionTag != null) {
          checkVersionTag(rgn, putAllData[i].versionTag);
        }
      }

      rgn.syncBulkOp(() -> {
        final boolean isDebugEnabled = logger.isDebugEnabled();
        for (int i = 0; i < putAllDataSize; ++i) {
          if (isDebugEnabled) {
            logger.debug("putAll processing {} with {} sender={}", putAllData[i],
                putAllData[i].versionTag, sender);
          }
          putAllData[i].setSender(sender);
          doEntryPut(putAllData[i], rgn);
        }
      }, ev.getEventId());
    }
create an event for a PutAllEntryData element

@return the event to be used in applying the element
geode-core/src/main/java/org/apache/geode/internal/cache/DistributedPutAllOperation.java