code: private function doDeletePermissionRole(int $permissionId, int $roleId): ?int
      {
          $q = new QueryBuilder("DELETE FROM ".self::ROLES_JOIN_TABLE_NAME." WHERE permission_id = $1 AND role_id = $2", $permissionId, $roleId);
          try {
              $deletedId = $q->executeWithReturnField('id');
          } catch (QueryResultsNotFoundException $e) {
              return null;
          }
          return (int) $deletedId;
      }
docs: returns null if not found