The robust way - with locks.
This also ensures that you can't have two people submit the same username "at the same time" (if they are using the same website?) and you end up inserting both.
<cfquery name="adduser">
INSERT
INTO Register(Username,Password)
OUTPUT INSERTED.Username
SELECT
<cfqueryparam cfsqltype="cf_sql_varchar" value="#Username#" />,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#Password#" />
WHERE <cfqueryparam cfsqltype="cf_sql_varchar" value="#Username#" /> NOT IN (
SELECT Username
FROM Register
WITH(ROWLOCK, UPDLOCK, SERIALIZABLE)
WHERE Username = <cfqueryparam cfsqltype="cf_sql_varchar" value="#Userame#" />
)
</cfquery>
<cfif adduser.RecordCount EQ 1>
<!--- success ---->
<cfelse>
<!--- failure ---->
</cfif>
As the insert could potentially fail for different reasons, if you really wish to be sure, in the failure "cfelse" you can add a query to check if the username existed.
You should also consider making that DB field UNIQUE, so the INSERT will fail - but in that case you have to TRY-CATCH the query to catch the failures.