public boolean modify(DiskRegion dr, DiskEntry entry, ValueWrapper value, boolean async) {
    try {
      byte userBits = calcUserBits(value);
      return basicModify(entry, value, userBits, async);
    } catch (IOException ex) {
      throw new DiskAccessException(
          String.format("Failed writing key to %s", diskFile.getPath()),
          ex, dr.getName());
    } catch (InterruptedException ie) {
      Thread.currentThread().interrupt();
      dr.getCancelCriterion().checkCancelInProgress(ie);
      throw new DiskAccessException(
          String.format(
              "Failed writing key to %s due to failure in acquiring read lock for asynch writing",
              diskFile.getPath()),
          ie, dr.getName());
    }
  }
Modifies a key/value pair from a region entry on disk. Updates all of the necessary
{@linkplain DiskStoreStats statistics} and invokes basicModify
<p>
Modified the code so as to reuse the already created ByteBuffer during transition. Minimizing
the synchronization allowing multiple put operations for different entries to proceed
concurrently for asynch mode

@param entry DiskEntry object representing the current Entry
@param value byte array representing the value
@return true if modify was done; false if this file did not have room
geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplog.java