@Override
    public void run() {
      byte[] value = new byte[100];
      Put[] in = new Put[1];

      // iterate for the specified number of operations
      for (int i = 0; i < numOps; i++) {
        // generate random bytes
        Bytes.random(value);

        // put the randombytes and verify that we can read it. This is one
        // way of ensuring that rwcc manipulation in HRegion.put() is fine.
        Put put = new Put(rowkey);
        put.addColumn(fam1, qual1, value);
        in[0] = put;
        try {
          OperationStatus[] ret = region.batchMutate(in);
          assertEquals(1, ret.length);
          assertEquals(OperationStatusCode.SUCCESS, ret[0].getOperationStatusCode());
          assertGet(this.region, rowkey, fam1, qual1, value);
        } catch (IOException e) {
          assertTrue("Thread id " + threadNumber + " operation " + i + " failed.", false);
        }
      }
    }
A thread that makes a few put calls
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestParallelPut.java