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.
Combine cilantro, pine nuts and garlic in a food processor and process until coarsely chopped. With the motor running, slowly add the olive oil and process until combined. Add the cheese, salt and pepper and pulse a few times to incorporate. Transfer to a bowl.