docs: public synchronized TableModel<V> setCell(int columnIndex, int rowIndex, V value) {
          getCell(columnIndex, rowIndex);
          List<V> row = rows.get(rowIndex);
  
          //Pad row with null if necessary
          for(int j = row.size(); j < columnIndex; j++) {
              row.add(null);
          }
  
          V existingValue = row.get(columnIndex);
          if(existingValue == value) {
              return this;
          }
          row.set(columnIndex, value);
          for(Listener<V> listener: listeners) {
              listener.onCellChanged(this, rowIndex, columnIndex, existingValue, value);
          }
          return this;
      }