Como faço para remover vários objetos em um relacionamento ManyToMany com base em um filtro?

Dados esses dois modelos:

class Item(models.Model):
    timestamp = models.DateTimeField()

class Source(models.Model):
    items = models.ManyToManyField(Item, related_name="sources")

Eu posso encontrar todos os itens de uma fonte antes de um determinado tempo usando este:

source.items.filter(timestamp__lte=some_datetime)

Como removo com eficiência todos os itens que correspondem a essa consulta? Suponho que eu poderia tentar algo como isto:

items_to_remove = list(source.items.filter(timestamp__lte=some_datetime))
source.items.remove(*items_to_remove)

mas isso parece ruim.

Note que eu não queroexcluir esses itens, pois também podem pertencer a outras fontes. Eu só quero remover o relacionamento deles com a fonte específica.