public boolean create(final K key, final V value) {
    // throws NullPointerException if key null
    final int hash = entryCreator.keyHashCode(key, compareValues);
    final Segment<K, V> seg = segmentFor(hash);
    if (seg.containsKey(key, hash)) {
      return false;
    }
    return seg.put(key, hash, value, true) == null;
  }
Create a given key, value mapping if the key does not exist in the map else do nothing. The
difference between this method and {@link #putIfAbsent(Object, Object)} is that latter always
acquires a write lock on the segment which this acquires a write lock only if entry was not
found. In other words this method is more efficient for the case when number of entries is
small and same entries are being updated repeatedly.

@return true if the key was successfully put in the map or false if there was an existing
        mapping for the key in the map

@throws NullPointerException if the specified key is null
geode-core/src/main/java/org/apache/geode/internal/util/concurrent/CustomEntryConcurrentHashMap.java