Я так понимаю, весь код нужно выполнять в пределах одной транзакции. В джанго это осуществляется с помощью декоратора transaction (from django.db import transaction). И операция 3 не сможет быть выполнения пока, скажем, операция 4 не будет завершена.