grobertson/django-taggit — pull request #3 by grobertson (2014-03-20 21:43:28+00:00)
Title: .save() uses transaction.atomic instead of savepoints

ready to review?: Yes.

Explained in more detail than you want or require here https://code.djangoproject.com/ticket/21134#no1

TL;DR Use transaction.atomic() instead of transaction.savepoint() and transaction.rollback() in Django 1.6 when you expect to continue and do something useful after a DatabaseError (or in this case a more specific IntegrityError)