code: @Override
    public void adapt(Append operation, ReadModifyWriteRow readModifyWriteRow) {
      for (Map.Entry<byte[], List<Cell>> entry : operation.getFamilyCellMap().entrySet()) {
        String familyName = Bytes.toString(entry.getKey());
        // Bigtable applies all appends present in a single RPC. HBase applies only the last
        // mutation present, if any. We remove all but the last mutation for each qualifier here:
        List<Cell> cells = CellDeduplicationHelper.deduplicateFamily(operation, entry.getKey());
  
        for (Cell cell : cells) {
          readModifyWriteRow.append(
              familyName,
              ByteString.copyFrom(
                  cell.getQualifierArray(),
                  cell.getQualifierOffset(),
                  cell.getQualifierLength()),
              ByteString.copyFrom(
                  cell.getValueArray(),
                  cell.getValueOffset(),
                  cell.getValueLength())
          );
        }
      }
    }
docs: {@inheritDoc}