Coming from the marine composites industry, i have a little different experience on the use of some products, and would like to add two cents in, that i think most amateurs will find invaluable.
If you are not in a position to weld a hole or imperfection, or pay to have something welded, clean down to bare metal with 36 grit, brush on unthickened west system epoxy (two part, 5:1 mix ratio) and then "sand in" the wet epoxy to the metal surface with a clean metal brush, then thicken some unthickened epoxy with colloidal silica until it reaches a peanut butter consistency, and apply to the panel, making it a little "proud". Once cured, scrub off the amine blush that occurs on the surface with a watered scotch brite red pad. Once dry, sand with 36 grit, and you can fill or paint with any polyester products (duratec, evercoat, rage gold, upol...) and they will adhere. The thing is, only west system epoxy will "accept" polyester products, whereas, no other epoxy distributor will. They have a really good formulation. The rust will not come back if you clean it down to bare metal and do what i tell you. Over twenty years of working with this stuff. The primary reasons you don't see body shops use this, i think, is because epoxy will not cure nearly as quickly as the 30 minutes polyester, and vinylester products, and epoxy, especially west system epoxy, costs 3 times the amount. But still, this is a lot cheaper than paying someone to weld a little hole. I can rust proof any piece of metal you have. If anybody on here needs something rust proofed, send it to me. I won't charge you a dime, unless it is huge. I try to help out fellow car guys if i can. Thanks