protected void checkVersionTag(DistributedRegion rgn, VersionTag tag) {
      RegionAttributes<?, ?> attr = rgn.getAttributes();
      if (attr.getConcurrencyChecksEnabled() && attr.getDataPolicy().withPersistence()
          && attr.getScope() != Scope.GLOBAL
          && (tag.getMemberID() == null || test_InvalidVersion)) {

        if (logger.isDebugEnabled()) {
          logger.debug("Version tag is missing the memberID: {}", tag);
        }

        throw new InvalidVersionException(
            String.format("memberID cannot be null for persistent regions: %s", tag));
      }
    }
Do the actual update after operationOnRegion has confirmed work needs to be done Note this is
the default implementation used by UpdateOperation. DistributedPutAllOperation overrides and
then calls back using super to this implementation. NOTE: be careful to not use methods like
getEvent(); defer to the ev passed as a parameter instead.
geode-core/src/main/java/org/apache/geode/internal/cache/AbstractUpdateOperation.java