code: public void setIndexedValue(String propertyName, int index, Object value) {
          setIndexedValue(object, getPropertyOrThrow(bean, propertyName), index, value, this);
      }
docs: Sets the value of the specified indexed property in the wrapped object.
  
  @param propertyName the name of the indexed property whose value is to be updated, cannot be {@code null}
  @param index        the index position of the property value to be set
  @param value        the indexed value to set, can be {@code null}
  @throws ReflectionException       if a reflection error occurs
  @throws IllegalArgumentException  if the propertyName parameter is {@code null}
  @throws IllegalArgumentException  if the indexed object in the wrapped object is not a {@link List} or {@code array} type
  @throws IndexOutOfBoundsException if the indexed object in the wrapped object is out of bounds with the given index and autogrowing is disabled
  @throws NullPointerException      if the indexed object in the wrapped object is {@code null}
  @throws NullPointerException      if the indexed object in the wrapped object is out of bounds with the given index, but autogrowing (if enabled) is unable to fill the blank positions with {@code null}
  @throws NullPointerException      if the wrapped object does not have a property with the given name