Thanks for the question. Yes, this function works for arbitrary MPO's, including non-Hermitian ones.
By the way, I'd recommend upgrading to the latest version of ITensor since we made a few fixes to this function a few months ago, and also because now we recommend a new interface through a function just called "applyMPO". Please see the last section of this page for more information:
I'd recommend using the checkMPOProd method within your code when you are first building and testing it to make sure that applyMPO is working and calculating the product that you expect. The function checkMPOProd is kind of slow, so you'll want to leave it out of your production code, but it makes no approximations whatsover when computing the quantity (distance) explained in the documentation so it's useful for testing.