code: boolean remove(K key, long value) {
      AtomicLong atomic = map.get(key);
      if (atomic == null) {
        return false;
      }
  
      long oldValue = atomic.get();
      if (oldValue != value) {
        return false;
      }
  
      if (oldValue == 0L || atomic.compareAndSet(oldValue, 0L)) {
        // only remove after setting to zero, to avoid concurrent updates
        map.remove(key, atomic);
        // succeed even if the remove fails, since the value was already adjusted
        return true;
      }
  
      // value changed
      return false;
    }
docs: If {@code (key, value)} is currently in the map, this method removes it and returns true;
  otherwise, this method returns false.