def METHOD_NAME(self):
    conditions = []
    if self.last_event is not None:
        conditions.extend(
            [
                ["timestamp", "<=", self.last_event.timestamp],
                [
                    ["timestamp", "<", self.last_event.timestamp],
                    ["event_id", "<", self.last_event.event_id],
                ],
            ]
        )
    group_ids = []
    project_groups = defaultdict(list)
    for group in self.groups:
        project_groups[group.project_id].append(group.id)
        group_ids.append(group.id)
    project_ids = list(project_groups.keys())
    events = eventstore.backend.get_unfetched_events(
        filter=eventstore.Filter(
            conditions=conditions, project_ids=project_ids, group_ids=group_ids
        ),
        limit=self.DEFAULT_CHUNK_SIZE,
        referrer="deletions.group",
        orderby=["-timestamp", "-event_id"],
        tenant_ids={"organization_id": self.groups[0].project.organization_id}
        if self.groups
        else None,
    )
    if not events:
        # Remove all group events now that their node data has been removed.
        for project_id, group_ids in project_groups.items():
            eventstream_state = eventstream.backend.start_delete_groups(project_id, group_ids)
            eventstream.backend.end_delete_groups(eventstream_state)
        return False
    self.last_event = events[-1]
    # Remove from nodestore
    node_ids = [Event.generate_node_id(event.project_id, event.event_id) for event in events]
    nodestore.backend.delete_multi(node_ids)
    # Remove EventAttachment and UserReport *again* as those may not have a
    # group ID, therefore there may be dangling ones after "regular" model
    # deletion.
    event_ids = [event.event_id for event in events]
    models.EventAttachment.objects.filter(
        event_id__in=event_ids, project_id__in=project_ids
    ).delete()
    models.UserReport.objects.filter(
        event_id__in=event_ids, project_id__in=project_ids
    ).delete()
    return True