docs: @Nonnull
    public IUserGroup createPredefinedUserGroup (@Nonnull @Nonempty final String sID,
                                                 @Nonnull @Nonempty final String sName,
                                                 @Nullable final String sDescription,
                                                 @Nullable final Map <String, String> aCustomAttrs)
    {
      // Create user group
      final UserGroup aUserGroup = new UserGroup (StubObject.createForCurrentUserAndID (sID, aCustomAttrs),
                                                  sName,
                                                  sDescription);
  
      m_aRWLock.writeLocked ( () -> {
        // Store
        internalCreateItem (aUserGroup);
      });
      AuditHelper.onAuditCreateSuccess (UserGroup.OT,
                                        aUserGroup.getID (),
                                        "predefined-usergroup",
                                        sName,
                                        sDescription,
                                        aCustomAttrs);
  
      // Execute callback as the very last action
      m_aCallbacks.forEach (aCB -> aCB.onUserGroupCreated (aUserGroup, true));
  
      return aUserGroup;
    }