private Result append(final HRegion region, final OperationQuota quota,
    final MutationProto mutation, final CellScanner cellScanner, long nonceGroup,
    ActivePolicyEnforcement spaceQuota, RpcCallContext context) throws IOException {
    long before = EnvironmentEdgeManager.currentTime();
    Append append = ProtobufUtil.toAppend(mutation, cellScanner);
    checkCellSizeLimit(region, append);
    spaceQuota.getPolicyEnforcement(region).check(append);
    quota.addMutation(append);
    long blockBytesScannedBefore = context != null ? context.getBlockBytesScanned() : 0;
    long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;
    Result r = region.append(append, nonceGroup, nonce);
    if (server.getMetrics() != null) {
      long blockBytesScanned =
        context != null ? context.getBlockBytesScanned() - blockBytesScannedBefore : 0;
      server.getMetrics().updateAppend(region, EnvironmentEdgeManager.currentTime() - before,
        blockBytesScanned);
    }
    return r == null ? Result.EMPTY_RESULT : r;
  }
Execute an append mutation.
@return result to return to client if default operation should be bypassed as indicated by
        RegionObserver, null otherwise
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java