You must accomplish this using the tMemorizeRows component in Talend.
In fact, a rough example task might look like this:

I use tFixedFlowInput to hard-code some of the data here, and not to read it in an Excel Sheet, but it should match what you provided as an example in the question:

tMemorizeRows , ( , , , ). . , , 2 :

, , , tMemorizeRows, tJavaRow, ( ):
String name = "";
String address = input_row.address;
String mailingAddress = input_row.mailing_address;
if ("".equals(input_row.name)) {
name = name_tMemorizeRows_1[1];
address = address_tMemorizeRows_1[1] + " " + input_row.address;
mailingAddress = mailing_address_tMemorizeRows_1[1] + " " + input_row.mailing_address;
} else {
name = "DELETE THIS ROW";
address = input_row.address;
mailingAddress = input_row.mailing_address;
}
output_row.name = name;
output_row.address = address;
output_row.mailing_address = mailingAddress;
, " ". tFilterRow , :

:
.-----------+---------------------------+---------------------.
| Output |
|=----------+---------------------------+--------------------=|
|name |address |mailing_address |
|=----------+---------------------------+--------------------=|
|John Carter|Washington Street USA 12345|PO Box 999 USA 12345 |
|Linda Green|London Road UK E20 2ST |PO Box 998 UK E20 2ST|
'-----------+---------------------------+---------------------'