Be aware that a ccTLD is meant for people in that country, it does not mean it is targeting all people who speak a language of the same name. Spanish is spoken in more countries than Spain, so if you wish to reach all Spanish speakers, I would recommend a .com site (which is country agnostic) and having English and Spanish language content there.
If you wish to target Spain citizens, the .es domain is perfect.
The way you have it set up above though, what will most likely happen (but this depends on your industry, competition, etc) is that the English language queries coming from Spain will see the .com version of your site as they should be searching in English. If someone in the US or Mexico is looking in Spainsh, they might not see the .es site as it is targeted to Spain, not Spanish. That doesn't mean they won't see it at all - if there isn't much competition they will see the .es if it is the best result for their search, but .es is meant to Spain based businesses and you can't change the country targeting on a ccTLD like .es
You can try to help Google understand with HREFlang as Joe said, but do understand that you'll be sending mixed signals with a .es domain if you are trying to get Spanish speaking searchers from other countries.
Hope that makes sense!