code: protected int persist(Iterable<QueueEntry> entries, Transaction transaction) throws IOException {
      long writePointer = transaction.getWritePointer();
      byte[] rowKeyPrefix = Bytes.add(queueRowPrefix, Bytes.toBytes(writePointer));
      int count = 0;
      List<Put> puts = Lists.newArrayList();
      int bytes = 0;
  
      for (QueueEntry entry : entries) {
        // Row key = queue_name + writePointer + counter
        byte[] rowKey = Bytes.add(rowKeyPrefix, Bytes.toBytes(count++));
        rowKey = HBaseQueueAdmin.ROW_KEY_DISTRIBUTOR.getDistributedKey(rowKey);
  
        rollbackKeys.add(rowKey);
        // No need to write ts=writePointer, as the row key already contains the writePointer
        Put put = new Put(rowKey);
        put.add(QueueEntryRow.COLUMN_FAMILY,
                QueueEntryRow.DATA_COLUMN,
                entry.getData());
        put.add(QueueEntryRow.COLUMN_FAMILY,
                QueueEntryRow.META_COLUMN,
                QueueEntry.serializeHashKeys(entry.getHashKeys()));
  
        puts.add(put);
  
        bytes += entry.getData().length;
      }
      hTable.put(puts);
      hTable.flushCommits();
  
      return bytes;
    }
docs: Persist queue entries into HBase.