code: @Override
      public final V put(K key, V value) {
          long hash;
          return segment(segmentIndex(hash = keyHashCode(key))).put(this, hash, key, value, false);
      }
docs: Associates the specified value with the specified key in this map. If the map previously
  contained a mapping for the key, the old value is replaced by the specified value. (A map
  {@code m} is said to contain a mapping for a key {@code k} if and only if {@link
  #containsKey(Object) m.containsKey(k)} would return {@code true}.)
  
  @param key key with which the specified value is to be associated
  @param value value to be associated with the specified key
  @return the previous value associated with {@code key}, or {@code null} if there was no
  mapping for {@code key}. (A {@code null} return can also indicate that the map previously
  associated {@code null} with {@code key}.)