code: public CQLSSTableWriter addRow(Map<String, Object> values)
      throws InvalidRequestException, IOException
      {
          int size = boundNames.size();
          List<ByteBuffer> rawValues = new ArrayList<>(size);
          for (int i = 0; i < size; i++) {
              ColumnSpecification spec = boundNames.get(i);
              Object value = values.get(spec.name.toString());
              rawValues.add(value == null ? null : ((AbstractType)spec.type).decompose(value));
          }
          return rawAddRow(rawValues);
      }
docs: Adds a new row to the writer.
  <p>
  This is equivalent to the other addRow methods, but takes a map whose
  keys are the names of the columns to add instead of taking a list of the
  values in the order of the insert statement used during construction of
  this write.
  <p>
  Please note that the column names in the map keys must be in lowercase unless
  the declared column name is a
  <a href="http://cassandra.apache.org/doc/cql3/CQL.html#identifiers">case-sensitive quoted identifier</a>
  (in which case the map key must use the exact case of the column).
  
  @param values a map of colum name to column values representing the new
  row to add. Note that if a column is not part of the map, it's value will
  be {@code null}. If the map contains keys that does not correspond to one
  of the column of the insert statement used when creating this writer, the
  the corresponding value is ignored.
  @return this writer.