Deadlock retries

Retry transaction on deadlock error.
Gotcha. I tend to use `unless` so long as I can formulate the conditional in entirely positive terms. As soon as my conditional includes a negation operator anywhere, I either try to rephrase it as a positive, or use `if` instead.

I also don't like `unless` paired with `else` for the same reason - it causes too much cognitive load when trying to understand code flow. I use `if !` and `else` in that case.

Aaaanyway.