use transaction.atomic instead of manual savepoints

This fixes IntegrityError exception within parent atomic block:

"An error occurred in the current transaction.
You can't execute queries until the end of the 'atomic' block"

https://docs.djangoproject.com/en/1.7/topics/db/transactions/#django.db.transaction.atomic