When the switch CAM table is empty and it receives an ARP message, does it add to the CAM table the source MAC address ?
In Packet Tracer I saw that it does add it, but I read in some book that the switch ignores them.
Switches don't know what ARP messages are and don't care about ARP. ARP is not a layer two protocol because it maps IP addresses and switches operate purely at layer 2 (Ethernet). As far as the switch is concerned, an ARP message is a packet like any other packet and they handle it the same way. If they didn't update the CAM table on unicast ARP messages, they wouldn't update the CAM table on any unicast message.