Catch common error about Transaction usage
Transaction object has many default class attributes like context.
This makes that code like this: "Transaction.context" does not fail.
To be able to catch such error earlier, I think we should move the declaration of those attributes in the __new__ method.