Soak beans overnight in large bowl of cold water. Drain, transfer to a large saucepan
and cover with cold water by 2 inches. Add the ham hock, bring to a boil over high heat, then reduce to medium heat and simmer
until tender, 1 to 1 1/2 hours. Drain
and set aside.
Heat 2 tablespoons of the butter and oil in a medium saucepan over high heat until the butter has melted. Add the onion and cook until soft, 3 to 4 minutes. Add the rice and stir to coat in the mixture. Add 2 3/4 cups water and 1 tablespoon of salt (or to taste), stir and bring to a boil over high heat. Reduce the heat to medium, cover the pan and cook until the water is absorbed and the rice is tender, about 15 minutes. Remove from the heat and let sit, covered, for 5 minutes. Remove the lid, fluff the rice.
Transfer the beans and rice to a large pot, add the pesto, remaining butter and about 1/4 cup of water and cook until the water is absorbed. Season with salt and pepper.