Bitcoins actually only exist as balances associated with bitcoin addresses as a result of previous transactions.
To allow value to be split and combined, transactions contain multiple inputs and outputs.
The output values of previous transactions will be referenced as input values of future ones.
Previous transaction outputs are referenced as new transaction inputs and transactions simply allocate funds to a new owner that can then spend them in a new transaction.
But you don't actually transfer anything - not even in a virtual or digital sense: as information - as many people suggest!
Once the transaction is signed using your private key (that is actually the only thing that is being kept and got to be yours, simply, because you randomly picked the 256 bits that it is made of and generated, for that matter, a random bitcoin address computing the corresponding bitcoin address - that can be made public because the reverse computation is not possible - of that random 256 bits, that's it: you have a transaction and transfered your ownership.
And that happens entirely locally, in your bitcoin wallet, without any need for the network or the internet.
Now it will be just a matter of knowing if the transaction is validated/verified/accepted by the network/database:
entering the blockchain and becoming a permanent record for all, making your bitcoin address balance on the blockchain to be - implicitly, as a result of referenced transactions - reduced.
You have to make a clear distinction between signing transactions and broadcasting them.
You can broadcast them for instance using a web service like this, simply:
https://blockchain.info/pushtxBut what makes the transfer of ownership of funds happen is, in a digital sense and in terms of information, at the level of signing.
Its broadcast - that could seem like some digital tokens or coded numbers being sent - is not actually anything of that sort. It is more like an order that is commanded from you and that the network/blockchain will have to decide authorize/accept/follow.
To sign a transaction you only need a private key and the destination bitcoin address. And when you sign a transaction you reveal your public address.
You can sign it with any bitcoin amounts that you want. But when you decide to broadcast it you will have the funds available, otherwise it will be rejected and you will have to try broadcasting it at another time, when you have funds for the transaction to be accepted. But as you see, nothing is transfered in terms of funds or tokens.
The only real information at sake is: the private keys and the signed transactions. Once the signed transactions enter the blockchain they will be irreversible and permanent, since the blocks that list those transactions are chained. And importantly, they will be sequenced in a specific - permanent - order, one after other, as if those transactions had a serial number to be listed. Actually you may list all transactions in a text file with a serial number, with the order they have on the blockchain and that is available as a public ledger.
There is only that information to be able to make sense of who owns what in terms of balances/funds and to decide who is able or not to insert a new signed transaction able to be referenced and traced back.
If you want to work out the balance of any bitcoin address, the information isn’t held at that address; you must reconstruct it by looking at the blockchain.
And because bitcoins exist only as records of transactions, you can end up with many different transactions tied to a particular bitcoin address.
So the order they will have on the public ledger is very important and determinant.
Once you pick the 256 bits that a private key is made of you can use it as yours. Usually you will pick that randomly and create for that matter a randomly generated bitcoin address. Creating a bitcoin address is simply picking the 256 bits of a private key and computing its corresponding bitcoin address. The reverse cannot be done and so you will be able to use that as your private key and make its corresponding bitcoin address public.