transaction shall be rolled back in case of exception - we need to double check for similar code snippets