* `transaction`: Transaction object. If a transaction parameter is not passed in, the method will automatically create an internal transaction.