It is very difficult to tell the difference between a punch and a push in an on-coming attack. I look at it this way: if we are totally aware of a potential threat, it will be much easier. If we are surprised attacked--which shouldn't happen,but is always possible-- we won't be able to successfully tell the difference and won't be able to defend it (if we can't see it, we probably can't defend against it). We can follow up, of course.
If we are aware, however, body language is our biggest indicator. If the attacker's hands are already closed they are ready to punch. If the hands are open they could still punch, or they could push, slap, palm strike, or grab. I believe, other than body language and verbal cues, that in the heat of an attack it will be difficult to tell the difference. Our goal is to maintain distance and if they get too close to us and we don't want them that close, it's our responsibility to get them out of our space so they can't successfully attack.
I don't care whether it's a push or a punch coming in. If their intent is to attack, I am going to attack the attack and I don't care if it's a push or punch.
Another thing I have found in my experiences is that if someone wants to swing at you he usually doesn't say a whole lot. He generally just attacks. Someone who pushes is one who is trying to intimidate, call you names, pop off, etc. So usually the big mouth talkers who get in your face are likely to push you before swinging. At least that is what I have experienced.