I just saw One upon a time in Mexico and it think it was pretty shit.
Antonio Banderas with his bloody guitar the whole time and like many others almost invinsible to bullets.
Shooting and blood the whole time. If you really want to see a film with lots of guns and violence but good, you should go and see City of God instead.
And also, if you're a fan of Salma Hayek (like me) you will be disappointed because she's in the film only for a few minutes.