To prepare the curry paste, combine all paste ingredients in a tall jug or milkshake container, then blend until smooth, adding water as needed.
In a large pot, heat oil over medium heat and add black mustard seeds, letting them sizzle for 30 seconds.
Stir in red onion and cook for 3 minutes until slightly golden.
Add the curry paste, cooking for another 3 minutes to enhance the spices and remove excess water.
Turn the heat up to medium-high, mix in tomato paste and tomato pulp, and cook for 2 minutes.
Pour in water, coconut milk, sugar, salt, and chili powder if using, then bring to a gentle simmer.
After 2 minutes, add tomato and green chili, allowing it to cook for another 3 minutes until the sauce thickens.
Stir in the fish and let it cook for 3 to 4 minutes until it flakes easily.
Remove from heat, garnish with fresh coriander and green chilies, and serve with basmati rice.