code: private void comparatorDecreaseKey(Node<K, V> n, K newKey) {
          int c = comparator.compare(newKey, n.key);
          if (c > 0) {
              throw new IllegalArgumentException("Keys can only be decreased!");
          }
          n.key = newKey;
          if (c == 0) {
              return;
          }
  
          if (n.next == null) {
              throw new IllegalArgumentException("Invalid handle!");
          }
  
          // if not root and heap order violation
          Node<K, V> y = n.parent;
          if (y != null && comparator.compare(n.key, y.key) < 0) {
              cut(n, y);
              root.mark = false;
              cascadingRankChange(y);
              if (comparator.compare(n.key, root.key) < 0) {
                  root = link(root, n);
              } else {
                  link(n, root);
              }
          }
      }
docs: /*
  Decrease the key of a node.