I was told that the exchange rate given at ATM's is the official exchange rate. My bank charges me $5 for each transaction though. Some machines limit the amounts to 4000 pesos, others to 5000 pesos.
Traveller's checks while a good alternative, are not cashed everywhere (the popular cambio in POP will ) but I take some just in case I lose my cash, or ATM card somewhere. I think though I'd have to get some good assistance in any of the larger cities to find an American Express rep to do the refund for me.
Plus I take a few hundred cash right away to start off with.