code: @Override
      public final V putIfAbsent(K key, V value) {
          long hash;
          return segment(segmentIndex(hash = keyHashCode(key))).put(this, hash, key, value, true);
      }
docs: If the specified key is not already associated with a value (or is mapped to {@code null})
  associates it with the given value and returns {@code null}, else returns the current value.
  
  @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 the specified key, or {@code null} if there was no
  mapping for the key. (A {@code null} return can also indicate that the map previously
  associated {@code null} with the key.)