The upgrade itself is hardly the effort. Normal steps:
Directly upgrading the mainline is also possible, but you might run into unsolvable problems. For that you do need to have a rollback plan, which is as simple as restore the last database and latest commit before the upgrade. If meanwhile developers have continued working in the upgraded mainline, their work is lost. Hence the branch.
You only upgrade production as last step.