Making sure you've Forward Integrated is always prudent before merging to a main branch. You should rather handle any merge conflicts in your branch before Reverse Integrating. So in that respect your logic is sound.
Figuring out if a branch has been Forward Integrated can be done by looking if any merge candidates exist from main. This can be done using the API method VersionControlServer.GetMergeCandidates() or using the command line tf.exe:
tf merge /candidate /recursive $/TeamProject/Main $/TeamProject/FeatureBranch