Heat 2 tablespoons of the oil in a large frying pan over a medium heat. When hot, and add the onion and pinch of salt. Sauté the onion over a very low heat for a good 5 minutes, until translucent.
Add the garlic. Sauté for a further 1 to 2 minutes, still over a very low heat, to soften the garlic (take care not to burn it).
Add all the remaining ball ingredients except the coriander. Stir to combine, then gently fry for 3 to 4 minutes, until warm.
Scrape everything into a food processor (this works better than the blender) and blitz for a good 3 minutes, scraping down the sides from time to time if necessary, or until reduced to a fine texture.
Transfer the mixture to a bowl, cover and leave for at least one hour or overnight in the fridge to stiffen up.
To make the sauce, put all the ingredients – starting with 3 chillies – in a blender and blitz to a fine paste. Adjust the salt and taste to test your heat tolerance. This sauce is not supposed to be especially spicy, but you should be able to feel the heat and taste the smokiness of the chipotles. One at a time add further chillies, testing between each addition, until you’re happy with the heat. Press this mixture through a sieve into a saucepan and discard the contents of the sieve.
When you’re ready to eat, put the pan over a very low heat to gently warm through.
Make 12–16 equal-sized balls out of the ball mixture. Heat the remaining four tablespoons of oil in a frying pan set over a medium heat. Add the balls in batches, frying each batch for 10 minutes, rolling them around in the pan to keep them round, until cooked through. As each batch is done, pop the balls into the pan with the sauce and keep warm over a very low heat.
Divide the balls between 4 serving plates and cover them with sauce. Scatter with chopped coriander and serve with a spicy salsa or sauce of your choice. The sesame and three chilli salsa is great with this.