code: public static <K, E> Set<E> getAndPutSetIfAbsent(final Map<K, Set<E>> map, final K key) {
          Set<E> v = map.get(key);
  
          if (v == null) {
              v = new HashSet<>();
              v = map.put(key, v);
          }
  
          return v;
      }
docs: Returns the value associated with the specified {@code key} if it exists in the specified {@code map} contains, or the new put {@code Set} if it's absent.
  
  @param map
  @param key
  @return