docs: @Nonnull
    public EChange deleteRole (@Nullable final String sRoleID)
    {
      Role aDeletedRole;
      m_aRWLock.writeLock ().lock ();
      try
      {
        aDeletedRole = internalDeleteItem (sRoleID);
        if (aDeletedRole == null)
        {
          AuditHelper.onAuditDeleteFailure (Role.OT, "no-such-role-id", sRoleID);
          return EChange.UNCHANGED;
        }
        BusinessObjectHelper.setDeletionNow (aDeletedRole);
      }
      finally
      {
        m_aRWLock.writeLock ().unlock ();
      }
      AuditHelper.onAuditDeleteSuccess (Role.OT, sRoleID);
  
      // Execute callback as the very last action
      m_aCallbacks.forEach (aCB -> aCB.onRoleDeleted (aDeletedRole));
  
      return EChange.CHANGED;
    }