code: private Put preparePut(String columnFamily, Object rowKey, Map<String, Attribute> columns, Map<String, Object> values)
              throws IOException
      {
          Put p = new Put(HBaseUtils.getBytes(rowKey));
          for (String columnName : columns.keySet())
          {
              Attribute column = columns.get(columnName);
              if (!column.isCollection() && !((SingularAttribute) column).isId())
              {
                  String qualifier = columnName;
                  try
                  {
                      Object o = values.get(columnName);
                      byte[] value = HBaseUtils.getBytes(o);
                      if (value != null && columnFamily != null)
                      {
                          p.add(Bytes.toBytes(columnFamily), Bytes.toBytes(qualifier), value);
                      }
                  }
                  catch (PropertyAccessException e1)
                  {
                      throw new IOException(e1);
                  }
              }
          }
          return p;
      }
docs: Prepare put.
  
  @param columnFamily
  the column family
  @param rowKey
  the row key
  @param columns
  the columns
  @param values TODO
  @param columnFamilyObj
  the column family obj
  @return the put
  @throws IOException
  Signals that an I/O exception has occurred.