Store the error code for clients

Clients of the transactional API may need to refer to which error
occurred in order to react appropriately on transaction retries.
diff --git a/src/erlfdb.erl b/src/erlfdb.erl
index 104d282..3c49e46 100644
--- a/src/erlfdb.erl
+++ b/src/erlfdb.erl
@@ -131,10 +131,12 @@
 transactional(?IS_DB = Db, UserFun) when is_function(UserFun, 1) ->
     Tx = create_transaction(Db),
     try
+        put(erlfdb_error, undefined),
         Ret = UserFun(Tx),
         wait(commit(Tx)),
         Ret
     catch error:{erlfdb_error, Code} ->
+        put(erlfdb_error, Code),
         wait(on_error(Tx, Code)),
         transactional(Db, UserFun)
     end;