refactor: use a transaction for deleteAccount (#46)
This prevents a potential, although unlikely, issue where an account is left in an invalid state due to one or more delete operations failing. This would prevent a user from being able to delete their account on the network without manual intervention.