Prepare the ribs by removing the extra fat. Season them with salt and pepper.
Prepare the sauce by combining all the sauce ingredients in a small bowl and stirring well to combine. Set aside.
Preheat oven to 350F.
Place a large Dutch oven on the stove-top, over medium heat. Add about 2 tablespoons of oil and once hot sear the ribs well on all sides, then remove to a plate. Discard the grease, leaving in only about 1 tablespoon.
Add the onion, and chopped tomato and cook, stirring, until softened, about 3 minutes.
Return the ribs to the pot and also pour the sauce on top of the meat.
Place the lid on the Dutch oven and place it in the preheated oven. Cook for 45 minutes.
After 45 minutes of cooking, remove the pot from the oven and flip the meat over. Add about ¼ cup of water to the pot. Cover with the lid and place the pot back into the oven for another 45 minutes.
Remove the pot again and flip the ribs. Again, add ¼ cup water to the pot. Place the lid and return to the oven for an additional 30 minutes.
Remove from the oven and check the ribs. If it will split apart easily with a fork, it's time to add the beans. If not, cover and cook for an additional 15-30 minutes or until the ribs are falling apart.
Remove the meat to a plate, add the rinsed beans, and stir to combine the beans with the sauce. If a little more liquid is needed, add a bit more water. Return the chunks of ribs to the pot and bake UNCOVERED for an additional 30-45 minutes.
Garnish with cilantro and serve.
