docs: public synchronized V getCell(int columnIndex, int rowIndex) {
          if(rowIndex < 0 || columnIndex < 0) {
              throw new IndexOutOfBoundsException("Invalid row or column index: " + rowIndex + " " + columnIndex);
          }
          else if (rowIndex >= getRowCount()) {
              throw new IndexOutOfBoundsException("TableModel has " + getRowCount() + " rows, invalid access at rowIndex " + rowIndex);
          }
          if(columnIndex >= getColumnCount()) {
              throw new IndexOutOfBoundsException("TableModel has " + columnIndex + " columns, invalid access at columnIndex " + columnIndex);
          }
          return rows.get(rowIndex).get(columnIndex);
      }