@Override
  public TypeV   putIfAbsent( TypeK  key, TypeV val ) { return putIfMatch( key,      val, TOMBSTONE   ); }
Atomically, do a {@link #put} if-and-only-if the key is not mapped.
 Useful to ensure that only a single mapping for the key exists, even if
 many threads are trying to create the mapping in parallel.
 @return the previous value associated with the specified key,
        or <tt>null</tt> if there was no mapping for the key
 @throws NullPointerException if the specified key or value is null
jctools-core/src/main/java/org/jctools/maps/NonBlockingHashMap.java