docs: public void addRow(final KeyValue column) {
      if (key == null) {
        throw new IllegalStateException("setRow was never called on " + this);
      }
      
      if (Bytes.memcmp(column.key(), key, Const.SALT_WIDTH(), 
          key.length - Const.SALT_WIDTH()) != 0) {
        throw new IllegalDataException("Attempt to add a different row="
            + column + ", this=" + this);
      }
      
      //Check whether the cell is generated by same rollup aggregator
      if (need_count) {
        if ((column.qualifier()[0] & RollupUtils.AGGREGATOR_MASK) == agg_id) {
          append(column, false, false);
        } else if ((column.qualifier()[0] & RollupUtils.AGGREGATOR_MASK) == count_id) {
          append(column, true, false);
        // OLD style for Yahoo!
        } else if (Bytes.memcmp(RollupQuery.SUM, column.qualifier(), 0, RollupQuery.SUM.length) == 0) {
          append(column, false, true);
        } else if (Bytes.memcmp(RollupQuery.COUNT, column.qualifier(), 0, RollupQuery.COUNT.length) == 0) {
          append(column, true, true);
        } else {
          throw new IllegalDataException("Attempt to add a different aggrregate cell ="
              + column + ", expected aggregator either SUM or COUNT");
        }
      } else {
        if ((column.qualifier()[0] & RollupUtils.AGGREGATOR_MASK) == agg_id) {
          append(column, false, false);
        } else if (Bytes.memcmp(column.qualifier(), rollup_query.getRollupAggPrefix(), 0,
              rollup_query.getRollupAggPrefix().length) == 0) {
          append(column, false, true);
        } else {
          throw new IllegalDataException("Attempt to add a different aggrregate cell ="
              + column + ", expected aggregator " + Bytes.pretty(
              rollup_query.getRollupAggPrefix()));
        }
      }
    }