code: @CanIgnoreReturnValue
    public V set(int rowIndex, int columnIndex, @Nullable V value) {
      // In GWT array access never throws IndexOutOfBoundsException.
      checkElementIndex(rowIndex, rowList.size());
      checkElementIndex(columnIndex, columnList.size());
      V oldValue = array[rowIndex][columnIndex];
      array[rowIndex][columnIndex] = value;
      return oldValue;
    }
docs: Associates {@code value} with the specified row and column indices. The logic {@code
  put(rowKeyList().get(rowIndex), columnKeyList().get(columnIndex), value)} has the same
  behavior, but this method runs more quickly.
  
  @param rowIndex position of the row key in {@link #rowKeyList()}
  @param columnIndex position of the row key in {@link #columnKeyList()}
  @param value value to store in the table
  @return the previous value with the specified row and column
  @throws IndexOutOfBoundsException if either index is negative, {@code rowIndex} is greater than
  or equal to the number of allowed row keys, or {@code columnIndex} is greater than or equal
  to the number of allowed column keys