Short Answer: The answer is that it depends.
Longer Explanation: Naturally, when a device is sending out unicast IP traffic, it needs to add the layer 2 headers (including destination MAC address) to the frame before sending it on the wire. This IP-to-MAC mapping is exactly what the ARP process is there to provide to the host.
Based on this statement, one might think that this naturally means that ARP traffic will automatically be sent before any ICMP traffic. However, once a host learns this IP-to-MAC mapping, it inserts it into an ARP table for some period of time. So a host will check this ARP table for such a mapping first and only send out ARP if there is no entry.
So in your example, let's say that Host A has no entry for Host B's IP address in the ARP table. When Host A pings Host B the traffic exchange is like this:
Host A Host B
ARP_Request --->
<--- ARP_Reply
ICMP_Echo --->
<--- ICMP_Echo_Reply
Now let's say that Host A does have an entry for Host B's IP address in the ARP table. When Host A pings Host B the traffic exchange is instead like this:
Host A Host B
ICMP_Echo --->
<--- ICMP_Echo_Reply
So to answer your specific question.
Will A host ping after ARP or omit ARP?
Host A will either send the ICMP after ARP or omit ARP depending on the status of the entry for Host B in it's ARP table.