code: private void addColumnsToCF(List<?> row, ColumnFamily cfamily)
      {
          CFMetaData cfm = cfamily.metadata();
          assert cfm != null;
  
          for (Object c : row)
          {
              JsonColumn col = new JsonColumn<List>((List) c, cfm);
              if (col.isRangeTombstone())
              {
                  Composite start = cfm.comparator.fromByteBuffer(col.getName());
                  Composite end = cfm.comparator.fromByteBuffer(col.getValue());
                  cfamily.addAtom(new RangeTombstone(start, end, col.timestamp, col.localExpirationTime));
                  continue;
              }
              
              assert cfm.isCQL3Table() || col.getName().hasRemaining() : "Cell name should not be empty";
              CellName cname = col.getName().hasRemaining() ? cfm.comparator.cellFromByteBuffer(col.getName()) 
                      : cfm.comparator.rowMarker(Composites.EMPTY);
  
              if (col.isExpiring())
              {
                  cfamily.addColumn(new BufferExpiringCell(cname, col.getValue(), col.timestamp, col.ttl, col.localExpirationTime));
              }
              else if (col.isCounter())
              {
                  cfamily.addColumn(new BufferCounterCell(cname, col.getValue(), col.timestamp, col.timestampOfLastDelete));
              }
              else if (col.isDeleted())
              {
                  cfamily.addTombstone(cname, col.getValue(), col.timestamp);
              }
              else if (col.isRangeTombstone())
              {
                  CellName end = cfm.comparator.cellFromByteBuffer(col.getValue());
                  cfamily.addAtom(new RangeTombstone(cname, end, col.timestamp, col.localExpirationTime));
              }
              // cql3 row marker, see CASSANDRA-5852
              else if (cname.isEmpty())
              {
                  cfamily.addColumn(cfm.comparator.rowMarker(Composites.EMPTY), col.getValue(), col.timestamp);
              }
              else
              {
                  cfamily.addColumn(cname, col.getValue(), col.timestamp);
              }
          }
      }
docs: Add columns to a column family.
  
  @param row the columns associated with a row
  @param cfamily the column family to add columns to