code: private void placeCell(ArrayList<Row> someRows, Cell aCell, Point aPosition) {
          int i;
          Row row = null;
          int rowCount = aPosition.x + aCell.getRowspan() - someRows.size();
          assumeTableDefaults(aCell);
          if ( (aPosition.x + aCell.getRowspan()) > someRows.size() ) {
              for (i = 0; i < rowCount; i++) {
                  row = new Row(columns);
                  someRows.add(row);
              }
          }
          
          // reserve cell in rows below
          for (i = aPosition.x + 1; i < (aPosition.x  + aCell.getRowspan()); i++) {
              if ( !someRows.get(i).reserve(aPosition.y, aCell.getColspan())) {
                  
                  // should be impossible to come here :-)
                  throw new RuntimeException("addCell - error in reserve");
              }
          }
          row = someRows.get(aPosition.x);
          row.addElement(aCell, aPosition.y);
          
      }
docs: Inserts a Cell in a cell-array and reserves cells defined by row-/colspan.
  
  @param   someRows    some rows
  @param   aCell       the cell that has to be inserted
  @param   aPosition   the position where the cell has to be placed