Benedict Arnold is a war hero too. So by your thinking, he should not have hanged for treason?
You notice I said “is”? McCain falls into the same category.
Arnold certainly should have been hanged for treason. But his actions at the Battle of Saratoga still stand. One does not negate the other.
Interestingly enough, there is a monument to Arnold at Saratoga. It praises his actions there, but does not mention him by name.