private void preCheck(Row action) {
      Preconditions.checkNotNull(action, "action is null");
      if (!Bytes.equals(row, action.getRow())) {
        throw new IllegalArgumentException(
          "The row of the action <" + Bytes.toStringBinary(action.getRow())
            + "> doesn't match the original one <" + Bytes.toStringBinary(this.row) + ">");
      }
      Preconditions.checkState(op != null || filter != null,
        "condition is null. You need to"
          + " specify the condition by calling ifNotExists/ifEquals/ifMatches before building a"
          + " CheckAndMutate object");
    }
Enables the return of {@link QueryMetrics} alongside the corresponding result for this query
<p>
This is intended for advanced users who need result-granular, server-side metrics
<p>
Does not work
@param queryMetricsEnabled {@code true} to enable collection of per-result query metrics
                           {@code false} to disable metrics collection (resulting in
                           {@code null} metrics)
hbase-client/src/main/java/org/apache/hadoop/hbase/client/CheckAndMutate.java