class HBase_1_1_2_ClientService extends AbstractControllerService implements HBaseClientService {

    @Override
    public void put(final String tableName, final Collection<PutFlowFile> puts) throws IOException {
        try (final Table table = connection.getTable(TableName.valueOf(tableName))) {
            // Create one Put per row....
            final Map<String, List<PutColumn>> sorted = new HashMap<>();
            final List<Put> newPuts = new ArrayList<>();

            for (final PutFlowFile putFlowFile : puts) {
                final String rowKeyString = new String(putFlowFile.getRow(), StandardCharsets.UTF_8);
                List<PutColumn> columns = sorted.get(rowKeyString);
                if (columns == null) {
                    columns = new ArrayList<>();
                    sorted.put(rowKeyString, columns);
                }

                columns.addAll(putFlowFile.getColumns());
            }

            for (final Map.Entry<String, List<PutColumn>> entry : sorted.entrySet()) {
                newPuts.addAll(buildPuts(entry.getKey().getBytes(StandardCharsets.UTF_8), entry.getValue()));
            }

            table.put(newPuts);
        }
    }

}