Wraps the course updating in a transaction.

Not doing a whole lot of error-handling.