clean install: you make a backup, nuke the computer, install a fresh upgraded copy of the distro you want from a live usb, copy your data again to the computer.
upgrade: you wait ‘till the distro’ developers release an upgrade you can directly install from your soon to be old distro, you use a command like sudo do-release-upgrade
and why do you upgrade like that?
I backup and then upgrade through the mechanism provided. Why? Lazy. I should take the time to set up a NAS and run most of /home from that, but never have been motivated enough to try it.
I usually let myself lag behind on Fedora to wait until the kinks have been worked out. I just jumped from 38 to 40 in an upgrade and totally regret it. Python is screwed up in distrobox and making problems, but I can roll back too.