If you are using a transaction (and not a local call) you can trust the result. Or if you use a local call you can trust it if you trust the node you are using.
A transaction to produce results it needs to be mined by a miner. When a miner mines it (and solves the PoW puzzle successfully) he broadcasts the result and other nodes will verify it. If it's valid they accept it and broadcast it forward, otherwise it's ignored and it basically just dies away. The entire network verifies the result at some point, but may take a while due to latency issues.
However this does not mean that the result (inside a block) would necessarily stay as part of the canonical chain. The network's consensus mechanisms may still decide to discard the block, but that doesn't mean that its results would be invalid - it was just unlucky.