It is possible for smart contracts to contain code that allows them to update themselves when receiving a message signed by a certain key, but if this is the case, then it is obvious to anyone inspecting the contract.
Most heavily used Ethereum contracts such as Uniswap and Compound for example do not contain any updating code because users do not trust it.