Yes, it's true.
@Kayasax has provided you an official doc from technet.microsoft.com
Try it on your own:

Example (credits to yonglianglee):
? (dollar sign + question mark) Returns True or False value
indicating whether previous command ended with an error. For some
reason it does not catch all errors, but most of the time it works.
Task 1: See if a powershell cmdlet exists in the system. Code.
SomeCmdLet #does not exists
$?
$?
Output
The term 'SomeCmdLet' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:15
+ SomeCmdLet <<<< #does not exists
+ CategoryInfo : ObjectNotFound: (SomeCmdLet:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
False #error occured - previous cmdlet (SomeCmdLet) was not found
True #no errors returned by the previous command ($?)
Task 2: See if a WMI class exists in the system
gwmi win32_processo -ErrorAction SilentlyContinue #intentional error, win32_processor is the right one
$?
$?
Output:
False
True