datastore: mark failed rollbacks as finalized

If an error occurs upstream while trying to rollback a
transaction, we can mark the transaction as `finalized`
regardless. By marking it `finalized`, we don't then
later make an accidental commit when `done` is
executed.

Fixes #237
We could perhaps simplify this to:
``` js
that.isFinalized = true;
callback(err || null);
```