def METHOD_NAME(self, teams_eligible_for_reinsertion):
    """Used by subclasses to implement self.reinsert_capped_teams()"""
    if len(self.eligible_teams) - len(self.capped_teams) >= self.break_size:
        return
    reinsert = []
    number_to_reinsert = self.break_size - len(self.eligible_teams) + len(self.capped_teams)
    for _, group in groupby(teams_eligible_for_reinsertion, key=lambda tsi: tuple(tsi.itermetrics())):
        group = list(group)
        reinsert.extend(group)
        logger.info("Reinserting: %s", str(group))
        if len(reinsert) >= number_to_reinsert:
            tsi = group[-1]
            excess = len(reinsert) - number_to_reinsert
            logger.info("Break rank correction: %d at %s", excess, tsi.team)
            self.break_rank_correction = tsi, excess
            break
    for tsi in reinsert:
        self.capped_teams.remove(tsi)