You could write the test for an empty Update like this:
if (updateBuilder.ToBsonDocument().ElementCount == 0)
it's slightly more characters to type but it's more efficient as it doesn't have to format a string, and more robust as you wouldn't be affected it the ToString representation ever changed (which it might, ToString is typically intended for human consumption).
On the second issue, the most likely cause the Update didn't happen is because the query didn't match any documents. Can you double check your element names and your values?