transactions + error-handling in GistsController