code: @CanIgnoreReturnValue
    @Override
    public int remove(@Nullable Object element, int occurrences) {
      if (element == null || !isActuallyE(element)) {
        return 0;
      }
      Enum<?> e = (Enum<?>) element;
      checkNonnegative(occurrences, "occurrences");
      if (occurrences == 0) {
        return count(element);
      }
      int index = e.ordinal();
      int oldCount = counts[index];
      if (oldCount == 0) {
        return 0;
      } else if (oldCount <= occurrences) {
        counts[index] = 0;
        distinctElements--;
        size -= oldCount;
      } else {
        counts[index] = oldCount - occurrences;
        size -= occurrences;
      }
      return oldCount;
    }
docs: Modification Operations