code: public int putAtIndex(Object key, int value, int index) {
          Object old = objs[index];
          if (old == null || old == DELETED) {
              objs[index] = key;
              ints[index] = value;
              if (old != DELETED)
                  num_bindings++;
              if (3 * num_bindings >= 2 * objs.length)
                  rehash();
              return -1;
          } else { // update existing mapping
              int oldValue = ints[index];
              ints[index] = value;
              return oldValue;
          }
      }
docs: Associates the specified key with the specified value in this map.
  
  @param key key with which the specified value is to be associated.
  @param value value to be associated with the specified key.
  @param index the index at which to place this binding, as returned
  from {@link #lookup}.
  @return previous value associated with specified key, or -1 if there was
  no mapping for key.