@Override
  public ColumnListMutation<C> putEmptyColumn(C columnName, Integer ttl) {
    Column column = new Column();
    column.setName(columnSerializer.toByteBuffer(columnName));
    column.setValue(ThriftUtils.EMPTY_BYTE_BUFFER);
    column.setTimestamp(timestamp);
    if (ttl != null) column.setTtl(ttl);
    else if (defaultTtl != null) column.setTtl(defaultTtl);

    // 2. Create a mutation and append to the mutation list.
    Mutation mutation = new Mutation();
    mutation.setColumn_or_supercolumn(new ColumnOrSuperColumn().setColumn(column));
    mutationList.add(mutation);
    return this;
  }
  @Override
  public <V> ColumnListMutation<C> putColumn(
      C columnName, V value, Serializer<V> valueSerializer, Integer ttl) {
    // 1. Set up the column with all the data
    Column column = new Column();
    column.setName(columnSerializer.toByteBuffer(columnName));
    column.setValue(valueSerializer.toByteBuffer(value));
    column.setTimestamp(timestamp);
    if (ttl != null) column.setTtl(ttl);
    else if (defaultTtl != null) column.setTtl(defaultTtl);

    // 2. Create a mutation and append to the mutation list.
    Mutation mutation = new Mutation();
    mutation.setColumn_or_supercolumn(new ColumnOrSuperColumn().setColumn(column));
    mutationList.add(mutation);

    return this;
  }